AllDay ist ein Programm zur Darstellung eines Jahreskalenders. Es berechnet und zeigt beliebige Jahre des Julianischen und des Gregorianischen Kalendersystems (siehe separates Dokument "Über Kalender..."). Zusätzlich werden die Kalenderwoche nach drei verschiedenen länderspezifischen Arten, die Nummer des Tages im Jahr und die Anzahl der noch verbleibenden Tage im Jahr berechnet.
Die Wochentage eines Jahres werden entweder in horizontaler oder vertikaler Folge angezeigt. Eine Woche wird wahlweise beginnend mit Sonntag oder Montag gezeigt. Das Programm ist englischer oder deutscher Sprache benutzbar.
Zusätzlich berechnet AllDay standardmäßig bis zu 30 bewegliche und feste Feiertage und ist in der Lage, beliebig viele zusätzliche jährlich wiederkehrende Ereignisse (Benutzerereignisse) zu speichern und darzustellen.
Die aktivierten Feiertage und Benutzerereignisse (siehe weiter unten) können zusätzlich zur Jahresübersicht in separaten Listendarstellungen angezeigt werden.
Kalenderberechnung und -darstellung
Nachdem frühe Versionen von AllDay noch auf Betriebssystem-Routinen zur Kalenderberechnung zurückgegriffen haben, arbeitet AllDay mittlerweile vollkommen unabhängig vom Betriebssystem.
Obwohl Apple dem MacOS fast alles mitgegeben hat, was nötig wäre, fehlen bestimmte Fähigkeiten. Dazu zählen z.B. Feiertagsberechnung, Berechnung der Kalenderwoche (nur US-Berechnungsart für KW ist im System enthalten), Umwandlung von internem Datumsformat in Datumsausdrücke in Textform sowie nicht zu vergessen die Berechnung im Julianischen Kalender.
AllDay verwendet deshalb die eigentlichen Algorithmen zur Kalender- und Feiertagsberechnung, wie sie auch in den meisten Betriebssystemen eingebaut sind. Diese habe ich im Laufe der Zeit mit stetiger Erweiterung des Programmes aus den verschiedensten Quellen zusammengetragen und in einer dazu eigens entstandenen C-Library zusammengestellt.
Während die verwendeten Algorithmen allgemein zugängliche Vorgehensweisen zur Berechnung sind, welche zum Teil bereits vor Jahrhunderten entwickelt und veröffentlicht wurden, ist die auf den Algorithmen basierende universelle C-Library und natürlich ihre Umsetzung in Form von AllDay ausschließlich meine eigene Entwicklung.
Obwohl der Code der C-Library aus verständlichen Gründen nicht erhältlich ist, ist ihre volle Funktionalität in Form meiner AppleScript-Erweiterung (OSAX) "DatePack" verfügbar. Als AppleScript-Erweiterung sind alle Library-Funktionen innerhalb des ganzen Mac-Systems für jeden verwendbar (siehe Abschnitt "AppleScript").
Die Berechnung der Kalenderdaten und ihre Darstellung in Form einer farbigen Jahresübersicht ist dank einer besonders abgestimmten Vorgehensweise bei der Umsetzung der Kalenderdaten in ein grafisches Bild extrem schnell. Damit wird ein schnelles Blättern von einem Jahr zum anderen wie auch sämtliche Umschaltungen von Sprache, Anordnung (horizontal/vertikal und Sonntag/Montag als Anfangstag) und Kalendersystem erst möglich.
Allgemeine Einstellungen
Ein Einstellungs-Fenster erlaubt die Anpassung von AllDay an individuelle Wünsche.
Neben der Darstellung der Wochentage und des Wochenbeginns kann dort die Art der Kalenderwochenberechnung und das Kalendersystem (Julianisch oder Gregorianisch) gewählt werden. Das Programm kann entweder in englischer oder deutscher Sprache arbeiten.
Die farblichen Markierungen von Feiertagen, Benutzerereignissen und dem heutigen Tag können an- und ausgeschaltet werden.
In Anlehnung an das Macintosh-Schreibtischzubehör (Desk-Accessories) kann man wählen, ob das Programm beendet werden soll, wenn alle Fenster geschlossen werden.
Die Einstellungen werden gemeinsam mit den zuletzt benutzen Fensterpositionen in einer "Preferences"-Datei dauerhaft gespeichert ("Preferences"-Ordner im Systemordner).
Feiertage
AllDay kennt 30 Feiertage, die über einen Konfigurations-Dialog ein- und ausgeschaltet werden können. So aktivierte Feiertage werden in der Jahresübersicht farblich markiert.
Die Berechnung dieser Feiertage ist fest programmiert und kann nicht erweitert werden. Zur Eingabe zusätzlicher Ereignisse dienen die Benutzerereignisse.
Farben
Über ein eigenes Fenster kann man individuell die farbliche Darstellung einstellen. Ein Mausklick auf ein farbiges Rechteck dieses Fensters zeigt den Apple Color Picker für den gewählten Bereich. Jeweils Vorder- und Hintergrundfarbe von Sonntagen, Feiertagen, Benutzerereignissen und heutigem Tag können eingestellt werden.
Benutzerereignisse
Seit Version 4.0 enthält AllDay eine Möglichkeit zur Eingabe von benutzerspezifischen Ereignissen, den "Benutzerereignissen". Dies ermöglicht das Hinzufügen von beispielsweise Geburtstagen. Die Benutzerereignisse können wahlweise als Feiertag oder Benutzerereignis dargestellt werden. Auch die Benutzerereignisse werden in der Jahresübersicht farblich markiert.
Es werden Datums- und Wochenereignisse unterschieden. Ein Datumsereignis ist z.B. ein Geburtstag, etwa der 16. Oktober. Ein Wochenereignis dagegen tritt jedes Jahr am selben Wochentag in derselben Woche des selben Monats auf, also z.B. der dritte Mittwoch im November oder der erste Montag im Mai.
Per Doppelklick auf einen Tag in der Jahresübersicht gelangt man direkt in das Fenster zur Neueingabe von Benutzerereignissen. Wählt man ein Benutzerereignis aus dem Tages-Popup-Menü (siehe nächster Abschnitt) , gelangt man direkt in das Fenster zur Änderung des gewählten Benutzerereignisses.
Die Benutzerereignisse werden in einem separaten Dokument gespeichert und können so individuell zusammengestellt werden.
Tages-Popup-Menü
Durch Anklicken eines in der Jahresübersicht markierten Tages kann der Benutzer Details dieses Tages in einem Popup-Fenster ansehen.
Es enthält das Datum in langer Schreibweise, die Kalenderwoche, die Anzahl der bis zum gewählten Tag einschließlich vergangenen Tage im Jahr sowie die Anzahl der bis dahin noch nicht vergangenen Tage im Jahr. Wenn für den angeklickten Tag Feiertage oder Benutzerereignisse aktiviert sind, erscheinen die Namen der Ereignisse ebenfalls im Menü.
Wählt man ein Benutzerereignis aus einem Popup-Menü, gelangt man in das Fenster zum Ändern des gewählten Benutzerereignisses.
AppleScript
AllDay kann per AppleScript automatisch bedient werden. Die "Required Event Suite" mit den Befehlen "Run", "Open", "Print" und "Quit" ist enthalten.
"getDayEvents" ist ein AppleScript-Befehl, der für einen beliebigen Tag alle Ereignisse ermittelt. Ein Beispielskript "Ereignisse ermitteln" demonstriert die Benutzung anhand einer simplen Alarmfunktion.
"isHoliday" nebst Beispielskript ergänzt die AppleScript-Palette. Der Befehl ermittelt, ob ein bestimmter Tag ein Feiertag ist.
Bonbon für AppleScript-Benutzer: Sämtliche in AllDay verwendeten Algorithmen zur Datums- und Feiertagsberechnung sind auch in meiner AppleScript-Erweiterung (OSAX) "DatePack" enthalten. DatePack erweitert AppleScript und damit das ganze Mac-System um entsprechende Befehle und ist als separates Freeware-Paket über CompuServe (GO MACUP, GO MACHYP, GO GERNET) oder Internet (http://hyperarchive.lcs.mit.edu/HyperArchive.html) erhältlich.
Zur Entwicklung
AllDay wurde mit Symantec Think C entwickelt. Zur Dokumentation wurde die Symantec Think Reference (super!) sowie die "Inside Macintosh"-CD von Apple (mäßig aber ob der lückenloseren Abdeckung aller Themen unverzichtbar) verwendet.
Systemvoraussetzung
AllDay läuft auf Macs mit MC68020-Prozessor oder höher ab System 7. 32-Bit Color QuickDraw wird auf dafür ausgelegten Modellen unterstützt.
AllDay ppc läuft auf Macintosh-Modellen mit PPC601-Prozessor oder höher.
Installation
Kopieren Sie einfach den Ordner "AllDay 5.0" auf die Festplatte. Doppelklick auf das Symbol von AllDay startet das Programm.
AllDay ist optimal auf Ihrem Mac im Zugriff, wenn von dem Benutzerereignis - Dokument, das mit AllDay geöffnet werden soll, ein Alias in das Apple-Menü gelegt wird. Benennen Sie den Alias in "AllDay" um. So können Sie AllDay von überall her mit dem Apple-Menü starten und gleich beim Start das passende Benutzerereignis - Dokument öffnen.
Falls AllDay bereits in einer älteren Version verwendet wurde, wird die alte "Prefs"-Datei durch eine Neue ersetzt. Die neue "Prefs"-Datei legt AllDay selbsttätig mit Vorgabewerten an, die unter Umständen nicht mit denen der alten Datei übereinstimmen. In diesem Fall müssen die benutzerspezifischen Einstellungen der alten "Prefs"-Datei erneut vorgenommen werden.
ACHTUNG: Beim erstmaligen Wechseln von einer 68k-Version auf eine PPC-Version muß die Preferences Datei vor dem Start der PPC-Version manuell entfernt werden. Die Benutzerereignis-Dokumente der 68K-Version können nicht von der PPC-Version benutzt werden und umgekehrt.
Rechtliches
Das vorliegende Produkt ist Freeware. Jegliche kommerzielle Nutzung (z.B. Verkauf, Veröffentlichung auf kommerziellen Datenträgern, usw.) ist nicht gestattet. Veröffentlichungen in Magazinen usw. sind dagegen jederzeit willkommen. Die Weitergabe von AllDay und den zu AllDay gehörenden Begleit- und Beispieldokumenten darf lediglich vollständig und unverändert erfolgen. Wenden Sie sich im Zweifelsfall an mich:
Ulrich Hilger
Avrilléstraße 5
65824 Schwalbach
Deutschland
CompuServe 100116,2751
e-Mail 100116.2751@compuserve.com
Internet http://ourworld.compuserve.com/homepages/Ulrich_Hilger
Im Falle eventueller Inkompatibilitäten bitte ich um Nachricht (und um Nachsicht), damit zukünftige Versionen möglichst stabil in jeder Systemumgebung laufen können.
Versionsverlauf
Version 5.1 (14.12.1996)
* Das Programm zeigt nun den Ostersonntag auch korrekt an, wenn er auf einen
31. März fällt.
* In der vertikalen Anordnung der Wochentag werden bei einem Klick in die
Kalenderübersicht alle Tage korrekt im Popup-Menü dargestellt.
* Wenn kein Fenster geöffnet ist, kann der Menüpunkt "Neu" nicht mehr
gewählt werden.
Version 5.0 (20.7.1996)
* Ein neuer AppleScript-Befehl "isHoliday" prüft, ob ein bestimmter Tag ein
Feiertag ist. Das neue Beispielskript "Feiertag feststellen" demonstriert
die Benutzung des Befehls.
* Die Kalenderdarstellung inklusive Feiertagsberechnung funktioniert jetzt für
alle Jahre.
* Die Datumsdarstellung ist zwischen Gregorianischem und Julianischem
Datum umschaltbar (siehe separates Dokument "Über Kalender...").
* Bei der Berechnung der Kalenderwoche kann zwischen drei verschiedenen
länderspezifischen Berechnungsarten gewählt werden.
* Die Darstellung des vollen Datums im Tages-Popup-Menü erfolgt für alle
Jahre korrekt.
* Die Anzeige der Nummer des Tages im Jahr sowie der noch verbleibenden
Tage im Jahr wird im Tages-Popup-Menü besser dargestellt.
* Die englische und deutsche Dokumentation wurde verbessert.
Version 4.6 (24.3.1996)
* Mit dem zusätzlichen AppleScript-Befehl "getDayEvents" lassen sich alle
Ereignisse eines beliebigen Tages ermitteln. Ein zusätzliches Beispielskript
"Ereignisse ermitteln" demonstriert die Nutzung anhand einer simplen
Alarmfunktion.
* Doppelklick auf einen Tag in der Jahresübersicht öffnet direkt das Fenster zur
Neueingabe eines Benutzerereignisses für den gewählten Tag.
* Mit Auswahl eines Benutzerereignisses aus dem Tages-Popup-Menü gelangt
man direkt in das Fenster zum Ändern des gewählten Benutzerereignisses.
* Beim Anlegen eines neuen User-Events ist das Attribut "zeigen" standard-
mäßig eingeschaltet.
Version 4.5 (14.2.1996)
* Dank Christophe Laporte gibt es AllDay nun auch als deutsch/französische Version.
Version 4.5 (14.1.1996)
* Die Benutzerereignisse können wahlweise als Feiertag oder Benutzerereignis
angezeigt werden (Farbe).
* In der 68k-Version wird das Datum in langer Schreibweise im Popup-Menü für einen
angeklickten Tag in der Kalenderübersicht nun korrekt dargestellt.
Version 4.4 (31.12.1995)
* Das Popup-Menü, das bisher nur für Feiertage und Benutzerereignisse existerte,
wird nun für jeden beliebigen Tag gezeigt. Es enthält zusätzlich das Datum in
langer Schreibweise, die Kalenderwoche, die Anzahl der bis zum gewählten Tag
einschließlich vergangenen Tage im Jahr sowie die Anzahl der bis dahin noch nicht
vergangenen Tage im Jahr.
* AllDay ist skriptfähig mittels AppleScript. Die von Apple vorgeschriebene
"Required Event Suite" (Run, Open, Print und Quit) wurde implementiert.
* Mit AllDay ppc wurde erstmals eine zusätzliche, rein PPC-native Version
veröffentlicht.
Version 4.3 (25.11.95)
Ich wollte eigentlich keine Änderungen an AllDay mehr vornehmen. Zwei kleine Bugs sollten jedoch der Vollständigkeit halber noch korrigiert werden:
* Der Buß- und Bettag wird nun korrekt berechnet. Ich hatte angenommen, Buß- und
Bettag sei immer der dritte Mittwoch im November, doch weit gefehlt: Es ist der
dritte Mittwoch nach Allerheiligen (1. November). Wenn also Allerheiligen auf einen
Mittwoch fällt ist es der vierte Mittwoch im November.
* Wenn an einem Tag mehrere Ereignisse stattfinden, werden diese alle im
entsprechenden Popup-Menü aufgeführt. Bisher wurden nur jeweils der erste Feiertag
sowie das erste Benutzerereignis gezeigt.
Version 4.2 (14.8.94)
* Stürzt nicht mehr ab, wenn das Fenster zur Auflistung der Benutzerereignisse
geöffnet wird, während die 32-Bit-Adressierung eingeschaltet ist.
Version 4.1 (23.4.94)
* Beim Anklicken eines markierten Tages in der Jahresübersicht erscheint
ein PopUp-Fenster mit dem Namen des Ereignisses
* Das Programm kennt nun 30 Feiertage
* Preferences Ordner wird auch bei anderen Systemen als US oder
Deutsch erkannt
* Menüs zum Öffnen von Fenstern/Dialogen zeigen nun das entsprechende
Fenster erneut an, wenn es zwar bereits geöffnet, aber von anderen
Fenstern verdeckt ist
* PopUp-Menüs im Dialog zum Eingeben/Ändern von Benutzerereignissen
werden entsprechend dem gewählten Ereignistyp grau dargestellt
* Farben-, Feiertage-, Benutzerereignisse- und Einstellungen-Dialog sind nun
nicht mehr modal. Fensterpositionen werden in Preferences-Datei gespeichert.
* Popup-Menüs im Dialog zum Eingeben/Ändern von Benutzerereignissen
entsprechen nun ganz den Apple User Interface Guidelines.
* Enthält Default-Farben
* Korrigiert einige Fehler im Zusammenhang mit der Eingabe von Benutzerereignissen
sowie dem Fenster und Dateimanagement.
Version 4.0 (6.3.94)
* Benutzerereignisse
* Eigene Markierungsfarbe für Benutzerereignisse, wählbar im
Farbkonfigurierungs-Dialog
* Neuer "Preferences"-Dialog
* Feiertage und Benutzerereignisse werden in eigenen Fenstern aufgelistet,
die sich unabhängig voneinander darstellen, vergrößern und verkleinern
sowie durchblättern lassen
* Benutzer kann wählen, ob das Programm beim Schließen aller Fenster
beendet wird
* Druckt Benutzerereignisse zusammen mit den Feiertagen
Version 3.1 (18.12.93)
* Korrigiert einige Tippfehler in der Dokumentation und im "About"-Dialog
* Enthält ein verkleinertes Feiertage-Menü
* Erlaubt das Drucken des Kalenders und der Feiertagsliste über den Standard-
Druckdialog
* Markiert den heutigen Tag
* Erlaubt die individuelle Einstellung der Markierungsfarben für Vorder- und
Hintergrund von Sonntagen, Feiertagen und heutigem Tag
* Kennt vier weitere Feiertage (jetzt 22)
* Sämtliche Aktionen die Color-Quickdraw benutzen, werden nur auf Macs mit
Color-Quickdraw aufgerufen
* Benötigt nur noch etwa die Hälfte des Hauptspeichers als Version 3.0
Version 3.0 (7.11.93)
* Eigene Formel zur Bestimmung der Wochentage erlaubt auch korrekte Darstellung
von Jahren, die außerhalb des vom Mac Clock Chip vorgegebenen Bereich liegen
* Speichert auch die Fensterpositionen in der "Prefs"-Datei
* Auflistung von bis zu 18 Feiertagen in separatem Fenster
* Markierung von bis zu 18 Feiertagen in der Jahresübersicht
* Jeder bekannte Feiertag über einen Konfigurations-Dialog ein- und ausschaltbar
* Feiertagsfunktionen über neues Menü zugänglich
* Feiertagseinstellungen werden ebenfalls in der "Prefs"-Datei gesichert
* v3.0 erstmals Freeware
Version 2.3 (13.8.93)
* Korrigiert einen Fehler in der Speicherverwaltung des Programmes
* Speichert die aktuellen Einstellungen in einer "Prefs"-Datei im "Preferences"-Ordner
Version 2.1 (12.4.93)
* Korrigiert einen Fehler mit schwarzweiß-Macs
* Sonntage werden in allen Darstellungsarten rot markiert,
wenn der benutzte Macintosh 32-Bit Color QuickDraw unterstützt.
Version 2.0 (11.4.93)
* Kalender-Fenster wird bei neuerlichem Anzeigen über
die "Öffnen"-Menüoption an derselben Stelle ange-
zeigt, an der es über die "Schließen"-Menüoption ver-
lassen wurde.
* Neues Menü "Wechseln".
* Die Optionen Blättern und "Jahr wechseln" sind nun
im "Wechseln"-Menü wählbar.
* Die Tasten am unteren Fensterrand wurden entfernt.
* Horizontale und vertikale Darstellung der Wochentage
in der Kalenderübersicht im Menü "Wechseln" wählbar.
* Der gesamte Kalender wird zunächst offscreen erstellt
und anschließend komplett in das geöffnete Fenster
kopiert.
* Umschalten des ersten Wochentages in der Kalenderüber-
sicht zwischen Sonntag und Montag per Menü.
* Umschalten der Sprache zwischen Englisch und Deutsch
per Menü.
Version 1.3 (8.3.93)
* Korrigiert einige schwere Fehler der Version 1.2
Version 1.2 (13.2.93)
* Erste Veröffentlichung
Danksagung
Besonderer Dank gilt meiner Frau Simone für ihre erstaunliche Duldsamkeit gegenüber meiner gelegentlichen Programmierwut.
Vielen Dank auch an Steve Maller für seine Hilfe und Erfahrung beim Debugging der Version 1.3 sowie an Christophe Laporte für seine Übersetzung des Programmes ins Französische.
Ein spezielles Dankeschön auch an alle Sysops, die bei der weltweiten elektronischen Verbreitung von AllDay einen nicht unmaßgeblichen Beitrag leisten.
Dank schließlich an alle, die mit ihren Kommentaren halfen, AllDay zu verbessern.